package com.ambulance.project.biz.service;

import com.ambulance.project.biz.dto.PlatUserListDto;
import com.ambulance.project.biz.dto.admin.AdminStatisticsDto;
import com.ambulance.project.biz.dto.admin.ResourceDto;
import com.ambulance.project.biz.dto.pad.LoginResult;
import com.ambulance.project.biz.dto.pad.CarDto;
import com.ambulance.project.biz.dto.web.ReportDto;
import com.ambulance.project.biz.dto.web.WebCarDto;
import com.ambulance.project.biz.entity.Dispatch;
import com.ambulance.project.biz.entity.DispatchCase;
import com.ambulance.project.biz.entity.EcgDataInfo;
import com.ambulance.project.manager.domain.BizDispatch;

import java.util.List;
import java.util.Map;

/***
 *  @description
 *  @author zhao
 *  @date: 2020/4/27
 *  @version: v1.0
 */
public interface MyCustomerService {

    /**
     * 释放资源
     *
     * @param dispatchID 调度
     */
    public void releaseSource(Integer dispatchID,Integer isOver);

    /**
     * 取消派车通知
     *
     * @param dispatchID
     */
    public void cancelCar(Integer dispatchID,String reason);

    //调度派车
    public Map<String, Object> scheduleCar(Integer patientID,
                                           Integer driverID,
                                           Integer classID,
                                           Integer carID,
                                           Integer uid);

    //查询car及其通道
    public CarDto getCarChannelDto(Integer carID);

    //查询医院的车辆列表
    List<WebCarDto> listCar(Long uid);

    WebCarDto getWebCarDto(Integer carID);
    // 获取车辆的最近调度信息
    Dispatch getRecentDispatchByCarID(Integer carID);

    DispatchCase getDispatchCaseRecentByCar(Integer carID);

    //平板登陆
    LoginResult padLogIn(String code);

    //ecg数据
    EcgDataInfo getEcgData(Integer carID,Integer dispachID,String type);

    //统计可用资源数量
    ResourceDto getResource(Integer uid);

    //获取当月和上个月统计数据
    Map<String,AdminStatisticsDto> getCurrentMonthAndLastData();

    // 获取调度报告
    ReportDto queryOneReport(Integer dispatchId);


    // 条件查询调度列表
    List<BizDispatch> getDispatchList(BizDispatch dispatch);

    //查询用户基本信息
    List<PlatUserListDto> getPlatUserListDto(Long[] ids);
}
